Integrated development environments (IDE) provide a set of tools such as editing and debugging software for programmers. These tools are utilized to create and to debug new software programs. The IDE support software development by providing a windowed system for source file editing, project management, file interdependency management and debugging. ECLIPSE®, the Eclipse Foundation, is an IDE for C and C++ development on the LINUX® platform. ECLIPSE uses a plug-in based software model where all the components of the IDE are structured as plug-ins for the IDE.
There are many other types of programming tools that are not part of an IDE and are used on a stand-alone basis. One example of a stand alone tool is Valgrind. Valgrind is profiling utility that provides a suite of tools including a memcheck tool, an address check tool, a heap profiler tool and a cache profiler tool. Another example of a stand-alone programming tool is Oprofile. Oprofile is a profiling utility for the LINUX® platform that provides another suite of tools. The tools include a cache miss counter, a cache stall counter, a memory fetch counter and an additional set of profilers that can profile interrupt handlers and kernels. The tools of Valgrind and Oprofile are typically command line tools that generate simple flat output files.